Skip to content

feature/evals dod#173

Closed
reidbaker wants to merge 2 commits into
flutter:mainfrom
reidbaker:feature/evals-dod
Closed

feature/evals dod#173
reidbaker wants to merge 2 commits into
flutter:mainfrom
reidbaker:feature/evals-dod

Conversation

@reidbaker

Copy link
Copy Markdown
Contributor
  • Add evaluations setup and first eval definition for definition-of-done skill
  • Fix skills linter tests by adding ignore for definition-of-done-workspace and restructuring yaml configuration

@reidbaker reidbaker closed this Jul 13, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a rubric-based evaluation system for agent skills, including documentation, a test suite definition for the 'definition-of-done' skill, and updated ignore rules. Feedback on the changes highlights that the new .gitignore rules for evals are redundant due to how Git handles ignored parent directories. Additionally, manually adding individual workspace directories to ignore.json is not scalable, and it is recommended to move workspaces to a dedicated directory. Finally, using relative paths in the evaluation prompt may cause issues depending on the agent's execution root, so using full paths relative to the repository root is suggested.

Comment on lines +2 to +9
"skills": {
"definition-of-done-workspace": [
{
"rule_id": "path-does-not-exist",
"file_name": ".agents/skills/definition-of-done-workspace"
}
]
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Adding each individual workspace directory (like definition-of-done-workspace) to ignore.json is not scalable. As more skills are added and evaluated, developers and agents will have to continuously update ignore.json to prevent linter failures.

Instead of keeping the workspace directories inside .agents/skills/ (which is scanned by the linter), consider moving all evaluation workspaces to a dedicated directory outside of the skills directory, such as .agents/workspaces/ or .agents/eval-workspaces/.

This approach:

  1. Keeps .agents/skills/ clean and dedicated only to actual skills.
  2. Eliminates the need to add workspace directories to ignore.json.
  3. Simplifies .gitignore rules (you can just ignore .agents/workspaces/ entirely).
  "skills": {}

Comment on lines +6 to +7
"prompt": "Modify lib/src/levenshtein.dart to add a comment explaining how the algorithm calculates distance (e.g. tracking deletion, insertion, substitution cost), and make sure you finish the task completely.",
"expected_output": "The file lib/src/levenshtein.dart has a new explanatory comment, code is formatted, analyzed cleanly, and contains no forbidden temporal terms.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

If the agent is executed from the repository root, the path lib/src/levenshtein.dart will not exist, causing the agent to either fail or create a duplicate file at the root. To prevent ambiguity and ensure the evaluation runs successfully regardless of the agent's starting directory, consider using the full path relative to the repository root: tool/dart_skills_lint/lib/src/levenshtein.dart.

Suggested change
"prompt": "Modify lib/src/levenshtein.dart to add a comment explaining how the algorithm calculates distance (e.g. tracking deletion, insertion, substitution cost), and make sure you finish the task completely.",
"expected_output": "The file lib/src/levenshtein.dart has a new explanatory comment, code is formatted, analyzed cleanly, and contains no forbidden temporal terms.",
"prompt": "Modify tool/dart_skills_lint/lib/src/levenshtein.dart to add a comment explaining how the algorithm calculates distance (e.g. tracking deletion, insertion, substitution cost), and make sure you finish the task completely.",
"expected_output": "The file tool/dart_skills_lint/lib/src/levenshtein.dart has a new explanatory comment, code is formatted, analyzed cleanly, and contains no forbidden temporal terms.",

Comment on lines +9 to +11
# Keep evals inside un-ignored skill folders
!**/evals/
!**/evals/**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In Git, if a parent directory is ignored (e.g., third-party skill folders), Git will not traverse into it, meaning sub-patterns like !**/evals/ will have no effect on them. Conversely, for un-ignored skill folders (like definition-of-done/), all of their contents are already un-ignored by default.

Therefore, these rules are redundant and do not change Git's tracking behavior. If the goal is to track evals for all skills (including third-party ones), you would need to un-ignore the parent directories first and then ignore everything else inside them except evals/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant